package com.rk.kbk.model;

import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.rk.kbk.common.DateJsonDeserializer;
import com.rk.kbk.common.DateJsonSerializer;
import org.hibernate.annotations.GenericGenerator;
import org.springframework.format.annotation.DateTimeFormat;

import javax.persistence.*;
import java.io.Serializable;

/**
 * @User
 * @用户(user)
 * @version : Ver 1.0
 */
@Entity
public class User implements Serializable {
	private static final long serialVersionUID = 1L;

	/**
	 * @备注:主键
	 * @字段:id BIGINT(19)
	 */
	@Id
	@GeneratedValue(strategy= GenerationType.IDENTITY)
	@GenericGenerator(name="auto-identity",strategy="identity")
	@Column(updatable = false, columnDefinition="BIGINT(19) COMMENT '主键'")
	private java.lang.Long id;

	/**
	 * @备注:显示id
	 * @字段:second_id VARCHAR(100)
	 */
	@Column(columnDefinition="VARCHAR(100) COMMENT '显示id'")
	private java.lang.String secondId;

	/**
	 * @备注:用户昵称/店铺名称
	 * @字段:nick_name VARCHAR(100)
	 */
	@Column(columnDefinition="VARCHAR(100) COMMENT '用户昵称/店铺名称'")
	private java.lang.String nickName;

	/**
	 * @备注:用户真实姓名(骑-商)
	 * @字段:real_name VARCHAR(33)
	 */
	@Column(columnDefinition="VARCHAR(33) COMMENT '用户真实姓名(骑-商)'")
	private java.lang.String realName;

	/**
	 * @备注:手机号码(骑-商)
	 * @字段:phone VARCHAR(20)
	 */
	@Column(columnDefinition="VARCHAR(20) COMMENT '手机号码(骑-商)'")
	private java.lang.String phone;

	/**
	 * @备注:登陆密码
	 * @字段:password VARCHAR(40)
	 */
	@Column(columnDefinition="VARCHAR(40) COMMENT '登陆密码'")
	private java.lang.String password;

	/**
	 * @备注:头像地址(骑-商)
	 * @字段:head_url VARCHAR(255)
	 */
	@Column(columnDefinition="VARCHAR(255) COMMENT '头像地址(骑-商)'")
	private java.lang.String headUrl;

	/**
	 * @备注:餐饮许可证(商家可选)
	 * @字段:license_url TEXT(65535)
	 */
	@Column(columnDefinition="TEXT(65535) COMMENT '餐饮许可证(商家可选)'")
	private java.lang.String licenseUrl;

	/**
	 * @备注:商家店面照
	 * @字段:store_url TEXT(65535)
	 */
	@Column(columnDefinition="TEXT(65535) COMMENT '商家店面照'")
	private java.lang.String storeUrl;

	/**
	 * @备注:身份证号(骑-商)
	 * @字段:id_card VARCHAR(33)
	 */
	@Column(columnDefinition="VARCHAR(33) COMMENT '身份证号(骑-商)'")
	private java.lang.String idCard;

	/**
	 * @备注:身份证正面(骑-商)
	 * @字段:identity_front TEXT(65535)
	 */
	@Column(columnDefinition="TEXT(65535) COMMENT '身份证正面(骑-商)'")
	private java.lang.String identityFront;

	/**
	 * @备注:身份证反面(骑手)/营业执照(商家)
	 * @字段:identity_back TEXT(65535)
	 */
	@Column(columnDefinition="TEXT(65535) COMMENT '身份证反面(骑手)/营业执照(商家)'")
	private java.lang.String identityBack;

	/**
	 * @备注:健康证(骑手-可选)/商家店面照
	 * @字段:health_card TEXT(65535)
	 */
	@Column(columnDefinition="TEXT(65535) COMMENT '健康证(骑手-可选)/商家店面照'")
	private java.lang.String healthCard;

	/**
	 * @备注:注册地址id(骑-商)
	 * @字段:address BIGINT(19)
	 */
	@Column(columnDefinition="BIGINT(19) COMMENT '注册地址id(骑-商)'")
	private java.lang.Long address;

	/**
	 * @备注:出生日期
	 * @字段:birthday DATE(10)
	 */
	@Column(columnDefinition="DATE(10) COMMENT '出生日期'")
	private java.util.Date birthday;

	/**
	 * @备注:性别
	 * @字段:sex VARCHAR(50)
	 */
	@Column(columnDefinition="VARCHAR(50) COMMENT '性别'")
	private java.lang.String sex;

	/**
	 * @备注:微信号
	 * @字段:wx_id VARCHAR(200)
	 */
	@Column(columnDefinition="VARCHAR(200) COMMENT '微信号'")
	private java.lang.String wxId;

	/**
	 * @备注:用户类型,1表示用户，2表示骑手，3表示商家
	 * @字段:user_type VARCHAR(33)
	 */
	@Column(columnDefinition="VARCHAR(33) COMMENT '用户类型,1表示用户，2表示骑手，3表示商家'")
	private java.lang.Integer userType;



	/**
	 * @备注:取货时间
	 * @字段:shop_start_time INT(10)
	 */
	@Column(columnDefinition="VARCHAR(10) COMMENT '取货时间'")
	private java.lang.String shopStartTime;

	/**
	 * @备注:起送价
	 * @字段:shop_start_money DOUBLE(22)
	 */
	@Column(columnDefinition="DOUBLE(22) COMMENT '起送价'")
	private java.lang.Double shopStartMoney;

	/**
	 * @备注:是否通过考试,默认0表示不通过,1表示通过
	 * @字段:is_test INT(10)
	 */
	@Column(columnDefinition="INT(10) COMMENT '是否通过考试,默认0表示不通过,1表示通过'")
	private java.lang.Integer isTest;

	/**
	 * @备注:是否启用工作(骑手),默认1表示工作,2表示不工作
	 * @字段:is_work INT(10)
	 */
	@Column(columnDefinition="INT(10) COMMENT '是否启用工作(骑手),默认1表示工作,2表示不工作'")
	private java.lang.Integer isWork;



	/**
	 * @备注:默认0表示未认证，1表示认证成功，2表示认证中，3表示认证失败
	 * @字段:is_register INT(10)
	 */
	@Column(columnDefinition="INT(10) COMMENT '默认0表示未认证，1表示认证成功，2表示认证中，3表示认证失败'")
	private java.lang.Integer isRegister;

	/**
	 * @备注:语音提示男/女
	 * @字段:voice INT(2)
	 */
	@Column(columnDefinition="INT(2) COMMENT '语音提示男/女'")
	private java.lang.Integer voice;

	/**
	 * @备注:用户状态,默认1表示正常,2表示封号
	 * @字段:user_status VARCHAR(30)
	 */
	@Column(columnDefinition="VARCHAR(30) COMMENT '用户状态,默认" +
			",2表示封号'")
	private java.lang.Integer userStatus;

	/**
	 * @备注:服务状态,默认1表示正常,2表示处罚
	 * @字段:serve_type INTEGER(33)
	 */
	@Column(columnDefinition="INTEGER(33) COMMENT '服务状态,默认" +
			",2表示封号'")
	private java.lang.Integer serveType;

	/**
	 * @备注:创建时间
	 * @字段:gmt_datetime DATETIME(19)
	 */
	@Column(updatable = false, columnDefinition="DATETIME(19) COMMENT '创建时间'")
	@JsonSerialize(using=DateJsonSerializer.class)
	@JsonDeserialize(using=DateJsonDeserializer.class)
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss" )
	private java.util.Date gmtDatetime = new java.util.Date();

	/**
	 * @备注:修改时间
	 * @字段:upt_datetime DATETIME(19)
	 */
	@Column(columnDefinition="DATETIME(19) COMMENT '修改时间'")
	@JsonSerialize(using=DateJsonSerializer.class)
	@JsonDeserialize(using=DateJsonDeserializer.class)
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss" )
	private java.util.Date uptDatetime = new java.util.Date();

	private java.lang.String alias;//设备别名
	private java.lang.String souce;//IOS APP H5


	private  java.lang.Integer dailyTasks;//每日任务多少单(骑手)
	private  java.lang.Integer dailyTicket;//每日罚单(骑手)
	private  java.lang.Integer restDays;//休息天数(骑手)
	private  java.lang.Integer dailyDeduction;//日扣除金额(骑手)
	private  java.lang.Integer serviceAttitude;//服务态度
	private  java.lang.Double serviceRate;//服务费率(骑手)
	private  java.lang.String workTime;//工作时间(骑手)
	private  java.lang.Double orderTicket;//每单罚款(骑手)


	private  java.lang.Integer isMorning;//是否早班(骑手)
	private  java.lang.String worktimeMon;//早班时间(骑手)
	private  java.lang.String worktimeEve;//工作时间(骑手)
	private  java.lang.Integer changeDays;//轮换周期(骑手)
	private  java.lang.Integer fullTime;//是否全职(骑手)

	private  java.lang.String contactTel;//商家联系电话
	private  java.lang.String token;//微信端使用

    private java.lang.Integer healthCardStatus;//健康证状态（骑手）0代表未上传1代表审核中2代表审核通过3代表审核失败
	private java.lang.Integer licenseUrlStatus;//经营许可证（商家）0代表未上传1代表审核中2代表审核通过3代表审核失败






	public User(){
	}

	public User(
		java.lang.Long id
	){
		this.id = id;
	}

	public String getToken() {
		return token;
	}

	public void setToken(String token) {
		this.token = token;
	}

	public void setId(java.lang.Long id) {
		this.id = id;
	}

	public java.lang.Long getId() {
		return this.id;
	}

	public String getSecondId() { return secondId; }

	public void setSecondId(String secondId) { this.secondId = secondId; }

	public Integer getFullTime() {
		return fullTime;
	}

	public void setFullTime(Integer fullTime) {
		this.fullTime = fullTime;
	}

	public void setNickName(java.lang.String nickName) {
		this.nickName = nickName;
	}

	public java.lang.String getNickName() {
		return this.nickName;
	}


	public void setRealName(java.lang.String realName) {
		this.realName = realName;
	}

	public java.lang.String getRealName() {
		return this.realName;
	}


	public void setPhone(java.lang.String phone) {
		this.phone = phone;
	}

	public java.lang.String getPhone() {
		return this.phone;
	}


	public void setPassword(java.lang.String password) {
		this.password = password;
	}

	public java.lang.String getPassword() {
		return this.password;
	}


	public void setHeadUrl(java.lang.String headUrl) {
		this.headUrl = headUrl;
	}

	public java.lang.String getHeadUrl() {
		return this.headUrl;
	}

	public String getAlias() {
		return alias;
	}

	public void setAlias(String alias) {
		this.alias = alias;
	}

	public String getSouce() {
		return souce;
	}

	public void setSouce(String souce) {
		this.souce = souce;
	}

	public void setLicenseUrl(java.lang.String licenseUrl) {
		this.licenseUrl = licenseUrl;
	}

	public java.lang.String getLicenseUrl() {
		return this.licenseUrl;
	}


	public void setStoreUrl(java.lang.String storeUrl) {
		this.storeUrl = storeUrl;
	}

	public java.lang.String getStoreUrl() {
		return this.storeUrl;
	}

	public Integer getVoice() {
		return voice;
	}

	public void setVoice(Integer voice) {
		this.voice = voice;
	}

	public void setIdCard(java.lang.String idCard) {
		this.idCard = idCard;
	}

	public java.lang.String getIdCard() {
		return this.idCard;
	}


	public void setIdentityFront(java.lang.String identityFront) {
		this.identityFront = identityFront;
	}

	public java.lang.String getIdentityFront() {
		return this.identityFront;
	}

	public String getContactTel() {
		return contactTel;
	}

	public void setContactTel(String contactTel) {
		this.contactTel = contactTel;
	}

	public void setIdentityBack(java.lang.String identityBack) {
		this.identityBack = identityBack;
	}

	public java.lang.String getIdentityBack() {
		return this.identityBack;
	}


	public void setHealthCard(java.lang.String healthCard) {
		this.healthCard = healthCard;
	}

	public java.lang.String getHealthCard() {
		return this.healthCard;
	}


	public void setAddress(java.lang.Long address) {
		this.address = address;
	}

	public java.lang.Long getAddress() {
		return this.address;
	}



	public void setBirthday(java.util.Date birthday) {
		this.birthday = birthday;
	}

	public java.util.Date getBirthday() {
		return this.birthday;
	}


	public void setSex(java.lang.String sex) {
		this.sex = sex;
	}

	public java.lang.String getSex() {
		return this.sex;
	}


	public void setWxId(java.lang.String wxId) {
		this.wxId = wxId;
	}

	public java.lang.String getWxId() {
		return this.wxId;
	}


	public Integer getUserType() {
		return userType;
	}

	public void setUserType(Integer userType) {
		this.userType = userType;
	}

	public String getShopStartTime() {
		return shopStartTime;
	}

	public void setShopStartTime(String shopStartTime) {
		this.shopStartTime = shopStartTime;
	}

	public void setShopStartMoney(java.lang.Double shopStartMoney) {
		this.shopStartMoney = shopStartMoney;
	}

	public java.lang.Double getShopStartMoney() {
		return this.shopStartMoney;
	}


	public void setIsTest(java.lang.Integer isTest) {
		this.isTest = isTest;
	}

	public java.lang.Integer getIsTest() {
		return this.isTest;
	}


	public void setIsWork(java.lang.Integer isWork) {
		this.isWork = isWork;
	}

	public java.lang.Integer getIsWork() {
		return this.isWork;
	}


	public void setIsRegister(java.lang.Integer isRegister) {
		this.isRegister = isRegister;
	}

	public java.lang.Integer getIsRegister() {
		return this.isRegister;
	}


	public Integer getUserStatus() {
		return userStatus;
	}

	public void setUserStatus(Integer userStatus) {
		this.userStatus = userStatus;
	}

	public void setGmtDatetime(java.util.Date gmtDatetime) {
		this.gmtDatetime = gmtDatetime;
	}

	public java.util.Date getGmtDatetime() {
		return this.gmtDatetime;
	}


	public void setUptDatetime(java.util.Date uptDatetime) {
		this.uptDatetime = uptDatetime;
	}

	public java.util.Date getUptDatetime() {
		return this.uptDatetime;
	}

	public Integer getServeType() { return serveType; }

	public void setServeType(Integer serveType) { this.serveType = serveType; }

	public static long getSerialVersionUID() {
		return serialVersionUID;
	}

	public Integer getDailyTasks() {
		return dailyTasks;
	}

	public void setDailyTasks(Integer dailyTasks) {
		this.dailyTasks = dailyTasks;
	}

	public Integer getDailyTicket() {
		return dailyTicket;
	}

	public void setDailyTicket(Integer dailyTicket) {
		this.dailyTicket = dailyTicket;
	}

	public Integer getRestDays() {
		return restDays;
	}

	public void setRestDays(Integer restDays) {
		this.restDays = restDays;
	}

	public Integer getDailyDeduction() {
		return dailyDeduction;
	}

	public void setDailyDeduction(Integer dailyDeduction) {
		this.dailyDeduction = dailyDeduction;
	}

	public Integer getServiceAttitude() {
		return serviceAttitude;
	}

	public void setServiceAttitude(Integer serviceAttitude) {
		this.serviceAttitude = serviceAttitude;
	}

	public Double getServiceRate() {
		return serviceRate;
	}

	public void setServiceRate(Double serviceRate) {
		this.serviceRate = serviceRate;
	}



	public String getWorkTime() {
		return workTime;
	}

	public void setWorkTime(String workTime) {
		this.workTime = workTime;
	}

	public Double getOrderTicket() {
		return orderTicket;
	}

	public void setOrderTicket(Double orderTicket) {
		this.orderTicket = orderTicket;
	}

	public Integer getIsMorning() {
		return isMorning;
	}

	public void setIsMorning(Integer isMorning) {
		this.isMorning = isMorning;
	}

	public String getWorktimeMon() {
		return worktimeMon;
	}

	public void setWorktimeMon(String worktimeMon) {
		this.worktimeMon = worktimeMon;
	}

	public String getWorktimeEve() {
		return worktimeEve;
	}

	public void setWorktimeEve(String worktimeEve) {
		this.worktimeEve = worktimeEve;
	}

	public Integer getChangeDays() {
		return changeDays;
	}

	public void setChangeDays(Integer changeDays) {
		this.changeDays = changeDays;
	}

	public Integer getHealthCardStatus() {
		return healthCardStatus;
	}

	public void setHealthCardStatus(Integer healthCardStatus) {
		this.healthCardStatus = healthCardStatus;
	}

	public Integer getLicenseUrlStatus() {
		return licenseUrlStatus;
	}

	public void setLicenseUrlStatus(Integer licenseUrlStatus) {
		this.licenseUrlStatus = licenseUrlStatus;
	}
}
